/**
 * http://usejsdoc.org/
 */
var crypto = require('crypto');

module.exports = function(){
	this.encode = function(){
		var algorithmn = arguments[0] ? arguments[0] : null,//算法类型 sha1、md5、sha256、sha512
			enstring = 	arguments[1] ? arguments[1] : null,	//加密的字符串或者二进制数据流
			returnType = arguments[2] ? arguments[2] : null,//输出返回类型
			encodeKey = arguments[3] ? arguments[3] : null,//使用私钥
			encodeType = arguments[4] ? arguments[4] : null;//加密编码 binary、ascii和utf8
		var cipher = crypto.createCipher(algorithmn,encodeKey);
		cipher.update(enstring,encodeType,returnType);
		return cipher.final(returnType);
	};
	
	this.decode = function(){
		var algorithmn = arguments[0] ? arguments[0] : null,//算法类型 sha1、md5、sha256、sha512
				enstring = 	arguments[1] ? arguments[1] : null,	//加密的字符串或者二进制数据流
				returnType = arguments[2] ? arguments[2] : null,//输出返回类型
				encodeKey = arguments[3] ? arguments[3] : null,//使用私钥
				encodeType = arguments[4] ? arguments[4] : null;//加密编码 binary、ascii和utf8

			var decipher = crypto.createDecipher(algorithmn,encodeKey);
			decipher.update(enstring,returnType,encodeType);
			return decipher.final(encodeType);
	};
};